package com.ms.banner.transformer;

import ohos.agp.components.Component;

public class ZoomOutSlideTransformer extends ABaseTransformer {

    @Override
    protected void onTransform(Component component, float position) {
        if (position >= (float)-1 || position <= (float)1) {
            float height = (float)component.getHeight();
            float width = (float)component.getWidth();
            float scaleFactor = Math.max(0.85F, (float)1 - Math.abs(position));
            float vertMargin = height * ((float)1 - scaleFactor) / (float)2;
            float horzMargin = width * ((float)1 - scaleFactor) / (float)2;
            component.setPivotY(0.5F * height);
            component.setPivotX(0.5F * width);
            component.setTranslationX(position < (float)0 ? horzMargin - vertMargin / (float)2 : -horzMargin + vertMargin / (float)2);
            component.setScaleX(scaleFactor);
            component.setScaleY(scaleFactor);
            component.setAlpha(0.5F + (scaleFactor - 0.85F) / 0.14999998F * 0.5F);
        }
    }
}
